#include <stdio.h>


unsigned long long operationtime(unsigned long long n){
    unsigned long long time=0;
    while (n!=0){
        unsigned long long i=2;
        int tag=1;
        for (i = 2; i*i <= n;i++){
            if (n%i == 0){
                tag=0;
                break;
            }
        }
        if (tag==1)i=n;
        n-=i;
        time++;
    }
    return time;
}



int main(){
    int num;
    scanf("%d",&num);
    unsigned long long result[num];
    for (int i=0;i<num;i++){
        scanf("%lld",&result[i]);
        
    }
    //printf("%d\n",1);
    unsigned long long result2[num];
    for (int i=0;i<num;i++){
        result2[i]=operationtime(result[i]);
    }
    for (int i=0;i<num;i++){
        printf("%lld\n",result2[i]);
    }

    return 0;
}